1. Field of the Invention
The present invention relates to a packet transmitting/receiving apparatus and packet transmission method, and more particularly to a packet transmitting/receiving apparatus and packet transmission method that are suitable for use in wireless communication.
2. Description of the Related Art
Among the most common protocols (communication rules) presently used to transmit packets on the Internet are the RTP (Real-time Transport Protocol), UDP (User Data Protocol), and IP (Internet Protocol). In packet transmission, these protocols are commonly used in combination, and besides, these protocols have been standardized by the IETF (Internet Engineering Task Force).
In each of the above protocols, information is appended as described below to transmission data for a header to form a packet. That is, by RTP, a sequence number (hereinafter “SN” when necessary), which denotes the data order, and a time stamp (hereinafter “TS” when necessary), which is the time information, are appended to data to form an RTP packet.
Next, by UDP, the port number of the receiving end is appended to an RTP packet to form a UDP packet. Furthermore, by IP, the Internet address (IP address) of the receiving end is appended to a UDP packet to form an IP packet, which then will be transmitted to the receiving end.
Of these headers appended thus by RTP, UDP, and IP, the TS and SN vary every time a packet is transmitted and therefore are dynamic information, whereas the rest of information is static information (STATIC information) that becomes invariant once transmission begins.
A header like this is given by each protocol, and so when several protocols are used in communication, the header portion becomes long and the packet transmission rate decreases. For this reason, there are header compression methods that compress the header and then transmit a packet to improve the packet transmission rate.
The compression method for each header appended by RTP, UDP, and IP is prescribed by the IETF in RFC (Request for Comments) 2508. The header compression methods prescribed in RFC2508 are principally for packet transmission over wired networks such as the Internet.
In contrast to this, one header compression method presently proposed by the IETF for wireless packet transmission such as used in a cellular phone network is the ROHC (RObust Header Compression). This header compression method, noting that the rate of error occurrence tends to be higher in a wireless network than in a wired network, features a high error resiliency for the errors that occur during transmission.
Also, because the band frequency that a wireless network can make use of is narrower than that of a wired network, ROHC sets a higher header compression ratio than the compression methods prescribed in RFC2508. Incidentally, the ROHC is standardized under RFC 3095.
In the ROHC, there are two types of headers as shown in FIG. 1A and FIG. 1B, each respectively refereed to as the uncompressed (IR) packet and compressed (SO) packet. The header of an IR packet shown in FIG. 1A contains the parameters that do not vary in the course of communication (IP addresses, port numbers, etc.: static information), parameters that do vary in the course of communication (SN, TN, etc.), and CRC (Cyclic Redundancy Examine) bits that examine as to whether the header, when decompressed on the receiving end, has been correctly decompressed.
These static information, TS, and SN are often transmitted at predetermined intervals. The compressed packet shown in FIG. 1B does not contain an IP address, port number, TS, or ΔTS (TS increase), but does contain a compressed sequence number (hereinafter “SN′” when necessary) and CRC bits. The SN′ is manifested with the lower several bits of the original 16-bit SN.
To be specific, ROHC compresses a header as follows. That is, an uncompressed header containing an IP address and a port number is transmitted not by every transmission unit, but at predetermined intervals. If a consistent pattern appears between the SN increase and TN increase, the SN alone will be transmitted, and the TS increase will be calculated from the SN increase on the receiving end.
With respect to the SN, furthermore, only several lower bits are transmitted in an SO packet, and only when a carry occurs will the complete bits of an SN be transmitted. In this case, the transmitting end compresses a header with reference to referential information called the context, whereas the receiving end decompresses the header by using the same context as the one used by the transmitting end. The referential information here refers to previously transmitted header information.
When an uncompressed packet or a compressed packet described herein is transmitted, a CID (Context Identifier) that identifies the type of data is appended to the top of a packet.
A packet is transmitted with a CID thus appended thereto, and the receiving end makes reference to this CID appended to the packet at the transmitting end and identifies the packets with the same CID to be the packets of the same media type, thus distinguishing packets by the media type, and transmit the data of a plurality of media types by using one channel.
For instance, when two media types of data are transmitted using one channel, the voice data and image data each have separate contexts and are appended a different CID on a per data stream basis and transmitted.
FIG. 2 is a drawing showing a sample CID. In FIG. 2, each RTP packet to be transmitted has separate context for each media type such as video and audio. In other words, the static information and dynamic information used upon sending data differ between the video data and the audio data.
Static information herein refers to the information that does not vary when certain data is sent, and specific examples are the transmission source IP address, destination IP address, transmission source port number, transmission destination port number, and so on. On the other hand, the dynamic information here refers to information that varies on a per packet basis when certain data is sent, and specific examples are the SNs in packets and so on.
FIG. 2 shows a case where the data of two different media types, video and audio, are transmitted from varying IP addresses to one same IP address. Here the transmission source IP address for the video data is “133.0.0.1,” while the transmission source IP address for the audio data is “133.0.1.127.” The transmission source IP addresses thus vary. However, the destination IP address is “133.100.100.100” for both video and audio data.
The transmission source port numbers vary, with “56” for the video data and “60” for the audio data. Also, the transmission destination port numbers vary, with “120” for the video data and “122” for the audio data.
The video data and the audio data are each divided into a plurality of packets and transmitted, and an SN is appended to each packet to denote the order of packets. Furthermore with respect to the SN, a different number is assigned per CID.
For instance, for the video data with a CID=“2,” SN=“1,” “2,” “3,” “4,” . . . is applied, and for the audio data with a CID=“5,” SN=“64,” “65,” “66,” “67,” . . . is applied.
A case where a fixed CID is appended to a packet will be described. FIG. 3A and FIG. 3B is a pattern diagram showing the configurations of a packet. FIG. 3 shows the content in each bit per packet byte in the horizontal direction, and packets on a per byte basis in the vertical direction.
Regardless of a compressed packet or an uncompressed packet, one-byte header that contains a CID is appended to the top of a packet. FIG. 3A is a sample configuration in which a 4-bit CID is contained in a one-byte header. In FIG. 3B, the lower bits in the one-byte header become the CID field that stores a CID. For example, when a CID is “5,” “0101,” which is a binary form of “5,” is accommodated in the CID field. FIG. 3B shows a case of a packet with a CID=“5.” A packet is accommodated after the second byte. A packet to be accommodated may be either a compressed packet or an uncompressed packet.
Next, tile configuration of a compressed packet will be described. FIG. 4A, FIG. 4B, and FIG. 4C show the content in each bit per packet byte in the horizontal direction, and packets on a per byte basis in the vertical direction.
FIG. 4A is a pattern diagram showing a sample configuration of the UOR-0 packet. In FIG. 4A, a “0” is accommodated in the 0 bit of the 1st byte, an “SN” in the 1st through 4th bit, and a CRC in the 5th through 7th bit.
FIG. 4B is a pattern diagram showing a sample configuration of the UOR-2 packet. In FIG. 4B, “110” is accommodated in the 0 through 2nd bit of the 1st byte, a TS in the 3rd bit of the 1st byte through the 0 bit of the 2nd byte, an M in the 2nd bit of the 2nd byte, an SN in the 2nd through 7th bit of the 2nd byte, “0” in the 0 bit of the 3rd byte, and a CRC in the 1st through 7th bit of the 3rd byte.
FIG. 4C is a pattern diagram showing a sample configuration of an extended UOR-2 packet. In FIG. 4C, “110” is accommodated in the 0 through 2nd bit of the 1st byte, a TS in the 3rd bit of the 1st byte through the 0 bit of the 2nd byte, an M in the 2nd bit of the 2nd byte, an SN in the second through the 7th bit of the 2nd byte, “1” in the 0 bit of the 3rd byte, and a CRC in the 1st through the 7th bit of the 3rd byte.
As shown in FIG. 4, with compressed packets, the SN size varies on the basis of the packet format, and the field for an expressible SN also varies. So, in the packet format where an expressible SN is minimal, only an SN′, and not an SN, is transmitted.
Next, communication using compressed packets will be described. FIG. 5 is a sequence diagram showing the exchange in compressed-packet communication.
With reference to FIG. 5, the exchange between the compressing end that compresses and transmit packets and the decompressing end that receives and decompresses packets will be described.
When a packet with an SN=50 is transmitted first and a packet with an SN=51 is transmitted next, the latter packet is transmitted with an SN greater by 1 than the SN in an immediately preceding packet and can be compressed using UO-0 with the SN size of 4 bits.
Similarly, when a packet with an SN=51 is transmitted first and a packet with an SN=52 is transmitted next, the latter packet is transmitted with an SN greater by 1 than the SN in an immediately preceding packet and can be compressed using UO-0 with the SN size of 4 bits.
Next, when a packet with an SN=52 is transmitted first and a packet with an SN=3 is transmitted next, the latter packet is transmitted with an SN smaller by 49 than the SN in an immediately preceding packet, and the change in the SN can not be expressed using UO-0 with the SN size of 4 bits. So, extended UO-0 is used for compression and transmission.
Next, when a packet with an SN=3 is transmitted first and a packet with an SN=53 is transmitted next, the latter packet is transmitted with an SN greater by 50 than the SN in an immediately preceding packet, and the change in the SN can not be expressed using UO-0 with the SN size of 4 bits. So, extended UO-0 with the SN size of 4 bits is used for compression and transmission.
Thus the header size is reduced by selecting a header compression format capable of expressing a range of SN changes.
Here the SN ranges that UOR-0, UOR-2, and extended UOR-3 are capable of expressing will be described.
To compress a packet with an SN=v (V is an optional whole number), the ROHC prescribes that v be within the range of function f in equation (1).f(v_ref, k)=[v_ref−p, v_ref+(2k−1)−p]  (1)
V_ref here refers to the SN in an immediately preceding packet. When the SN is less than 4, p becomes 1, and when the SN is greater than 4, p is expressed as 2bits(SN)−1, with bits(SN) denoting the bit number that expresses the SN.
Thus with UO-0, an SN is expressed using 4 bits, and v needs to be within the range of equation (2).f(v_ref, 4)=[v_ref−1, v_ref+14]  (2)
With UO-2, an SN is expressed using 6 bits, and v needs to be within the range of equation (3).f(v_ref, 6)=[v_ref−1, v—ref+62]  (3)
With extended UO-2, an SN is expressed using 14 bits, and v needs to be within the range of equation (4).f(v_ref, 14)=[v_ref−511, v_ref+(214−1)−511]  (4)
However, with a conventional apparatus, when the order of packets varies and the SN value decreases, instead of increasing on a constant basis, or increases by a large value, transmission is performed using a packet format with a large range that an SN can express. As a result, data is transmitted in a packet format that requires a large field for an SN, and the compression efficiency decreases.